#pragma once
#include <string>
#include <vector>
#include "..\dxstdafx.h"
#include "..\base\Engine.h"
#include "..\renderer\Renderer.h"
#include "VertexBuffer.h"
#include "..\utils\GameMath.h"

namespace ds {

class TransformedVertexBuffer : public VertexBuffer {

struct TransformedVertex {
	float x,y,z,rwh; 
	float tu, tv;		
};

typedef std::vector<TransformedVertex> Vertices;

public:
	TransformedVertexBuffer(D3DPRIMITIVETYPE primitiveType,uint32 maxVertices,bool dynamic = false);
	virtual ~TransformedVertexBuffer();
	void addVertex(float x,float y,float z,float u,float v);	
	bool createBuffer();
	bool create(int size);
	void clear();
	int getSize() { return m_Vertices.size();}
	int getVertexSize() { return sizeof(TransformedVertex);}    	
private:
	Vertices m_Vertices;
	uint32 m_MaxVertices;
};
/*
class TransformedColouredVertexBuffer : public VertexBuffer {

struct TransformedColouredVertex {
	float x,y,z,rwh; 
	float tu, tv;		
	Color color;
};

typedef std::vector<TransformedColouredVertex> Vertices;

public:
	TransformedColouredVertexBuffer(D3DPRIMITIVETYPE primitiveType,int maxVertices,bool dynamic = false);
	virtual ~TransformedColouredVertexBuffer();
	void addVertex(float x,float y,float z,float u,float v,const Color& color = Color(1.0f,1.0f,1.0f,1.0f));	
	bool createBuffer();
	bool create(int size);
	void clear();
	int getSize() { return m_Vertices.size();}
	int getVertexSize() { return sizeof(TransformedColouredVertex);}    	
private:
	Vertices m_Vertices;
	int m_MaxVertices;
};
*/
};


